Devices and methods for real-time denoising of electrocardiograms

ABSTRACT

Apparatuses and methods (including methods of using such apparatuses) for de-noising electrocardiograms (ECGs) by manually or automatically adjusting the amount of filtering of an ECG signal. For example, real-time ECG signals may be filtered by combining in a weighted fashion an unfiltered portion of an ECG (or a filtered portion of the same ECG) with the same portion of the ECG that has been filtered. The weighting may be adjusted manually and/or automatically. Also described herein are methods for real-time filtering of ECG signals using a combination of filtering techniques including filtering to correct baseline wander, Savitzky-Golay denoising, and threshold smoothing. Multiple filtering techniques may be combined in a weighed manner to provide signal de-noising.

CROSS-REFERENCE

This application is a continuation of U.S. patent application Ser. No. 14/975,196, filed Dec. 18, 2015, entitled “DEVICES AND METHODS FOR REAL-TIME DENOISING OF ELECTROCARDIOGRAMS”, which is a continuation of U.S. patent application Ser. No. 14/327,742, filed Jul. 10, 2014, which claims the benefit of U.S. Provisional Application No. 61/844,850, filed Jul. 10, 2013, which each application is incorporated herein by reference in its entirety.

BACKGROUND

The electrocardiogram (ECG) is widely used for diagnosis of heart diseases. Good quality ECGs are utilized by physicians for interpretation and identification of physiological and pathological phenomena. However, in real situations, ECG recordings are often corrupted by artifacts. Two dominant artifacts present in ECG recordings are high-frequency noise caused by electromyogram induced noise, power line interferences, or mechanical forces acting on the electrodes and baseline wander (BW) that may be due to respiration or the motion of the patients or the instruments. These artifacts severely limit the utility of recorded ECGs and thus need to be removed for better clinical evaluation.

Although methods have been developed for ECG enhancement, to date the real-time processing of ECGs has proven difficult, and yet critical to the success of ECG analysis. For example, many filtering techniques result in modifying the width and amplitudes of features in the ECG signal that are critical to interpreting the physiological implications of the signal. Described herein are ECG enhancement apparatuses (devices and systems) and methods configured to provide rapid and reliable de-noising of the ECG signal in real time.

SUMMARY

Described herein are apparatuses and methods configured to de-noise electrocardiogram (ECG) signals. In particular, described herein are methods for manually and/or automatically scaling the amount of de-noising applied to an ECG signal in real-time. Also described herein are methods and apparatuses adapted to combine multiple de-noising techniques to condition an ECG signal.

Aspects of the present disclosure provide a method of processing an electrocardiogram (ECG) signal of a user to provide improved readability of the ECG signal for a medical professional in diagnosing the ECG signal. An ECG signal may be received, for example, with a computing device. The ECG signal may be filtered as the ECG signal is received. The filtering may be performed by applying a first filtering stage, a second filtering stage, and a third filtering stage to the ECG signal. The first, second, and third filtering stages may be different from one another. The filtered ECG signal may be displayed in real-time as the ECG signal is received and filtered. The ECG signals may be displayed by a display of the computing device. The displayed filtered ECG signal can have improved readability such that a medical professional can more reliably diagnose the filtered ECG signal.

The first, second, and third filtering stages may be performed in sequence or in parallel. The first filtering stage may comprise removing baseline wander of the ECG signal, such as by removing a moving average of the ECG signal from a portion of the ECG signal. The second filtering stage may comprise removing high-frequency noise from the ECG signal, such as by applying a Savitzky-Golay de-noising filter to smooth the ECG signal. This Savitzky-Golay de-noising filter may be applied by applying a high order Savitzky-Golay filter to a QRS segment of the ECG signal and applying a low order Savitzky-Golay filter to a non-QRS segment of the ECG signal. The third filtering stage may comprise removing low-amplitude, high frequency noise from the ECG signal, such as by applying threshold fit smoothing to the ECG signal.

The received ECG signal may be pre-processed before filtering the ECG signal such as by applying user-selected mains filter.

Furthermore, an amount of noise of the received ECG signal may be detected. An amount of filtering applied to the received ECG signal may be varied in response to the amount of noise detected. To detect the amount of noise, a module of the computing device may be trained with a noise model. Alternatively or in combination, the amount of filtering applied to the received ECG signal may be varied in response to user input.

Aspects of the present disclosure also provide a method of processing an electrocardiogram (ECG) signal of a user to provide improved readability of the ECG signal for a medical professional in diagnosing the ECG signal. An ECG signal may be provided to a computing device. The ECG signal may be filtered and displayed such as on a display of the computing device. An amount of filtering applied to the displayed ECG signal may be varied in response to user input. The amount of filtering may be varied in real-time as the ECG signal is displayed. The displayed filtered ECG signal may have improved readability such that a medical professional can better diagnose the filtered ECG signals.

To provide the ECG signal, the computing device may receive the ECG signal as the ECG signal is measured from an ECG sensor coupled to the computing device. Alternatively or in combination, the computing device may receive the ECG signal as the ECG signal is measured from an onboard sensor of the computing device.

Generally, the ECG signal is displayed in real-time as the ECG signal is provided and filtered. To filter the displayed ECG signal, a first filtering stage, a second filtering stage, and a third filtering stage may be applied to the received ECG signal, wherein the first, second, and third filtering stage are different from one another.

The computing device may comprise one or more of a smartphone, a tablet computer, a laptop computer, a personal computer, a personal digital assistant, or a wearable computer.

Aspects of the present disclosure also provide a method of processing an electrocardiogram (ECG) signal of a user. The ECG signal may be received, pre-processed, and then filtered by (i) removing baseline wander of the ECG signal, (ii) removing high frequency noise from the ECG signal, and (iii) removing low-amplitude, high frequency noise from the ECG signal, wherein steps (i) to (iii) are performed sequentially.

Aspects of the present disclosure also provide a computer readable medium comprising a set of instructions that when executed by a processor cause the processor to receive an ECG, filter the received ECG signal in-real time with a multi-stage filter, and cause the filtered signal to be displayed on a display in communication with the processor. The set of instructions when executed by the processor may also cause the ECG signals, filtered or unfiltered, to be stored on a memory in communication with the processor or to be transmitted to a remote computing device such as a remote server for storage and/or analysis either automatically or through a medical professionals. The set of instructions when executed by the processor may cause the processor or circuitry in communication with the processor to execute any of the methods, steps, or sub-steps described herein. The set of instructions may be provided on a memory of the computing device which may comprise any of the computing devices described herein. The processor may comprise a processor or other circuitry of the computing device.

INCORPORATION BY REFERENCE

All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the disclosure are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present disclosure will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings of which:

FIG. 1 illustrates an ideal version of an ECG signal, showing the PQRST components of the ECG trace.

FIG. 2 is a flow diagram showing an overview of one variation of a method for de-noising an ECG signal.

FIG. 3A shows one example of an ECG trace before applying any filtering, and FIG. 3B shows the same trace, with 100% of the filtering (applied). The de-noising technique used includes the use of a module for each of baseline wander correction, Savitzky-Golay de-noising, and threshold smoothing, similar to that illustrated in FIG. 2.

FIG. 4 schematically illustrates a manual selector for selecting the percent of filtering to be applied.

FIGS. 5A-5E illustrate an ECG trace with increasing amounts of filtering (de-noising) manually selected.

FIGS. 6A-6E illustrate an ECG trace with increasing amounts of filtering (de-noising) manually selected.

FIGS. 7A-7E illustrate an ECG trace with increasing amounts of filtering (de-noising) manually selected.

FIG. 8 shows a flow chart of an exemplary method of monitoring an ECG signal in accordance with many embodiments.

DETAILED DESCRIPTION

In general, an apparatus may include multiple filtering modules for de-noising an ECG signal. In particular, de-noising modules may be configured to operate in real-time. The apparatus may be configured to receive (or record) an ECG signal; the ECG signal may be digital or converted to a digital signal. The ECG signal may be analyzed to determine wherein the signal (or which portion of the signal) is likely to include a QRS portion of the signal. As illustrated in FIG. 1, a typical ECG signal includes a QRS complex having a rapid rise (peak) that may be readily determined. The peak location of the QRS complex in a signal may be determined based, for example, of the presence of a “spike” in the signal, particularly a spike having a characteristic rise and/or fall time.

Described herein are methods and apparatuses implementing these methods, for applying multiple de-noising techniques to a real-time ECG signal (e.g., from a moving window of an ECG as it is received by a device) enhancing the display of the ECG signal. Thus, this may be described as a visual de-noising or visual filtering. Multiple de-noising filters may be combined either in parallel or sequentially or both to provide a final de-noised output. In addition, the “percentage” of filtering applied may be manually or automatically selected. This percentage of filtering may be applied either to the overall de-noising, or to some or all of the different de-noising techniques (modules) included. For example, a raw digital ECG signal may be 100% de-noised by the filtering system, or it may be filtered some lesser percentage (e.g., 90%, 80%, 70%, etc.). In some variations, the amount (by percent) of each (or some) of the de-noising techniques may be selected (e.g., 100% baseline wander correction, 50% Savitzky-Golay de-noising, 50% threshold smoothing, etc.).

Also described herein are methods of de-noising using feedback based on the quality of the ECG signal received. For example, an apparatus may apply more filtering/de-noising when the raw ECG is noisier (has a higher signal-to-noise ratio), and less filtering/de-noising when the signal is less noisy, to prevent loss of signal information.

In the example below, three types of de-noising are described: baseline wander correction, Savitzky-Golay de-noising, and Threshold smoothing, and one variation of a method for applying these three de-noising techniques is illustrated. It should be understood that other techniques for de-noising, including other de-noising techniques (“modules”) and way to combine them are possible and encompassed by the inventions described herein.

EXAMPLE 1 Real-Time Visual Filtering

In one example, a real-time visual filter is composed of three high-level stages which operate on the signal approximately in order: baseline wander removal, Savitzky-Golay de-noising, and threshold-fit smoothing. FIG. 2 illustrates one variation, showing an overview of the operation of these three techniques. In FIG. 2, as in any of the variations discussed herein, the raw (demodulated) signal may first be pre-processed to remove mains noise. For example, as a pre-processing step before the main processing stages, an apparatus may apply an IIR notch filter at the mains frequency to remove mains noise.

In one example, the mains filter is a 2nd-order IIR notch filter with a stop-band centered at a user-selected (or preselected) mains frequency (e.g., 50 KHz, 60 KHz, etc.). The mains filter may operate directly on the raw data received from the FM demodulator (or other digital ECG signal source).

In any of the variations described herein, each de-noising module may be referred to as a stage, and in some variations, each stage operates independently of the other stages, and is not tightly coupled to the other stages. This may allow each stage to be modified, improved, or replaced without substantially affecting the behavior of subsequent stages.

In the example shown in FIG. 2, and described below, the real-time visual de-noising apparatus dynamically adjusts certain filter parameters based on the estimated quality and noise characteristics of the input signal.

Baseline Wander

Any appropriate baseline wander filter that provides real-time adjustment of the baseline (e.g., to restore it to zero) may be used. In one variation, the baseline wander removal stage is a centered moving-average filter, with a fixed window size, W_(avg). This stage removes baseline wander by subtracting from each sample the average of the previous W_(avg)/2 and next W_(avg)/2 samples. For example, when W_(avg)=401 samples, the window size will be longer than the R-R interval for heart rates of 45 bpm or greater (for many appropriate sample rates).

Further, in some variations, in calculating the moving average the 40 samples surrounding each detected QRS (+/−20 samples from the detected QRS location) may be excluded. Thus, the baseline wander module may receive information about the location (e.g., estimated midpoint) of a QRS location.

In some variations, the baseline wander module may include a parameter such as window size (W_(avg)) for the number of samples. This parameter may be set/fixed or adjusted either manually or automatically.

Savitzky-Golay De-Noising

The purpose of the Savitzky-Golay de-noising stage is to remove high-frequency noise from the signal without compromising the shape or relative amplitude of the morphological components. Savitzky-Golay filters are a class of FIR filters that essentially perform a local polynomial fit to the data in the signal. When the parameters of the filter are chosen properly, a Savitzky-Golay filter can remove noise while preserving the width and amplitude of features in the signal.

However, the order and window size of the filter must be chosen properly relative to the features that are intended to be preserved. One example of an implementation of this stage uses two Savitzky-Golay filters, a high-order filter used around the QRS complexes, and a low-order filter used everywhere else in the signal. As suggested by FIG. 2, a QRS detector (e.g., in the apparatus or system used to acquire the ECG signal or in the pre-processing of the window of ECG data) may be used to locate QRS complexes in the signal, and the output of the two filters may be combined using a weighted moving average. The high-order mixing weight (w_(mixing)) may be set to zero everywhere except for a Gaussian centered on each QRS location with peak amplitude 1 and a FWCM (full-width at 1/100th max) G_(mixing). The final output signal is then generated from the weight w_(mixing) and the two Savitzky-Golay filter outputs S_(high) and S_(low) according to a weighting technique, such as that illustrated in the following formula:

Out=S _(low)*(1−w _(mixing))+S _(high) *w _(mixing)

In some variations, the module including the one or more Savitzky-Golay de-noising/filtering may include one or more parameters that can be fixed or modified either manually and/or automatically. For example, Parameters that may be adjusted include: High-order filter order (e.g., 4/5), High-order filter window (samples) (e.g., 15), Low-order filter order (e.g., 2/3), Low-order filter window (samples) (e.g., 15), and QRS Mixing Width G_(mixing) (samples) (e.g., 60).

Threshold-Fit Smoothing

A threshold-fit smoothing (TFS) stage may perform additional smoothing of the signal to remove any low-amplitude, high-frequency noise remaining after the Savitzky-Golay denoising. The parameters used in the TFS stage may be dynamically adjusted based on the estimated noise content of the signal. The basic operation of the TFS stage will be discussed first, and then the adaptation mechanism.

The TFS stage first transforms the signal into a set of horizontal and vertical segments. The algorithm processes the signal in order. Starting with the beginning of the signal, or the end of the last segment generated, the algorithm generates a new horizontal segment whenever the signal range (the difference between the maximum and minimum signal value over the segment domain) exceeds a specified absolute threshold T. At this point, a new horizontal segment is generated with an amplitude corresponding to the average value of the signal over the segment domain, and a vertical segment is generated connecting the previous horizontal segment to this new horizontal segment.

Examples parameters of the threshold-fit smoothing/filter that may be fixed or adjustable (including automatically adjustable by the adaptation mechanism described below) include: Segment Threshold T (mV), which may be variable/adjustable and have a default=0.05; Difference Window W_(diff) (samples) which may be variable/adjustable and have a default=21; Maximum Segment Length M_(p) (samples) (e.g., 80); and Intermediate Signal Mixing Fraction F_(ws), which may be variable/adjustable and have a default=1.0.

Subsequently, the midpoints of each segment (both the horizontal segments and vertical segments) may be computed, and a shape-preserving cubic fit interpolation may be used to generate a smooth function S_(tf) connecting these points.

An intermediate signal S_(I) may be generated from a weighted average of the output of the baseline wander filter S_(w), and the output of the Savitzky-Golay filter S_(SG). The weight may be given, in one variation, by the intermediate signal mixing fraction F_(ws), such that S_(I)=F_(ws)*S_(SG)+(1−F_(ws))*S_(w).

The interpolated/smoothed function S_(tf) may be subtracted from the intermediate signal S_(I). The difference may then filtered by a centered moving average filter with window size W_(diff), and this filtered difference may then added back to the smoothed function S_(tf) to produce the final output of the stage.

Because the filtering may be performed in real time and because this may require a certain minimum number of points to perform the cubic fit interpolation, the algorithm may impose a maximum segment length. For example, the algorithm may require that there be at least 3 segments in every M_(p)-sample interval.

Adaptation

As mentioned, the apparatus may automatically adjust the amount of filtering (and type of filtering/de-noising) based on the need or demand, as determined from the quality of the signal. For example, optimal values for the TFS parameters may depend on the noise characteristics of the signal. Is it known that parameters that lead to good noise reduction on noisy signals can produce over-filtering of clean signals. We developed an adaptation mechanism that produces an estimate of the noise characteristics of the signal and adjusts the TFS parameters accordingly. This automatic or “adaptation” mechanism may use two or more independent measures.

For example, first the apparatus may count the number of horizontal segments generated by the TFS filter between each pair of QRSs. Segments with length 1 (i.e. segments generated when the signal changes by more than the current threshold T between samples, such as in a QRS) are excluded. After the sample corresponding to the detected location of each QRS is output from the filter, the threshold T is adjusted based on the number of segments in the last QRS-to-QRS interval, so as to try to keep the number of length>1 segments in those intervals at approximately 30.

Second, from each QRS, the apparatus may compute a “pseudo-SNR” associated with that QRS by subtracting the output of the interpolated/smoothed signal S_(tf) from the output of the baseline wander filter SW to produce a “pseudo-noise” signal SSN. Then, for a window centered on the detected QRS location extending +/−150 samples forward and backward, but excluding the innermost +/−20 samples around the QRS, the algorithm calculates the pseudo-SNR by dividing the standard deviation of the pseudo-noise signal by the standard deviation of the smoothed signal S_(tf) (note that this is technically a “noise-to-signal ratio,” i.e. it is larger when more noise is present). This pseudo-SNR is then multiplied by 100.

The average of the pseudo-SNR associated with the last 5 QRSs is stored as the “recent pseudo-SNR” (R_(snr)). This parameter may then be used to update the difference window W_(diff) parameter and intermediate signal mixing fraction F_(ws), for example, according to a relationship such as:

$W_{diff} = {{round}\left( \frac{\min \left( {21,R_{snr}} \right)}{2} \right)}$ $F_{ws} = {\min \left( {1,\frac{R_{snr}}{20}} \right)}$

The purpose of the first mechanism is to keep the threshold value T properly scaled relative to the amplitude of the received ECG signal. The purpose of the second mechanism is to gradually reduce the amount of filtering that is applied based on the estimated amount of noise present in the signal, such that cleaner signals are subjected to less-aggressive filtering (note that, in the extreme of 0 noise, with W_(diff)=1 and F_(ws)=0, the TFS stage would simply output the unaltered baseline wander signal S_(ws) bypassing the Savitzky-Golay filtering as well as the threshold/fit smoothing).

Comments on Implementation

The described filter configuration illustrated in FIG. 2, above, represents just one possible instance of a broad class of filters (filter configurations) that can be implemented using the threshold segment extraction (fit smoothing) recombination approach illustrated in this example. All numerical values provided as examples above, such as the window size used for calculating the pseudo-SNR, target number of segments, as well as the adaptive parameter relationships were chosen empirically and good or perhaps better behavior could conceivably be obtained with different choices for these parameters.

Shape-preserving cubic fit implementations appropriate for use as described herein have been previously described, although not in the context of the apparatus and methods described herein. For example, see F. N. Fritsch and R. E. Carlson, Monotone Piecewise Cubic Interpolation, SIAM Journal on Numerical Analysis, 17 (1980), pp. 238-246, and the default MATLAB implementation of it (as “pchip.m,”). Compared to an ordinary cubic fit interpolation, the “shape-preserving” fit sets the local slope of the interpolation points to prevent the interpolated signal from over or undershooting the local sample values. This produces a smooth, visually-pleasing interpolation that connects the sampled points without introducing spurious ringing or oscillation, e.g. frequency components not present in the sampled data. A comparison of this interpolation with a standard cubic fit interpolation is shown below (taken from MATLAB documentation on pchip.m).

FIG. 3 (as well as FIGS. 5 to 7) illustrate the operation of a de-noising technique employing the three modules illustrated above. In this example, FIG. 3A shows an example of an ECG recording both without (FIG. 3A, showing the raw ECG signal) and with (FIG. 3B) the real-time de-noising using a baseline wander correction technique, a pair of Savitzky-Golay de-noising filters and threshold smoothing. As can be seen in FIG. 3B, the high-frequency noise has been mostly eliminated, revealing an ECG signal (including multiple QRS peaks) that may provide significant clinical information.

In FIGS. 3A and 3B the raw and de-noised signals are compared. Also described herein are systems and methods allowing manual (or automatic) control of the overall amount (percent) of de-noising applied. In this context, for example, FIG. 3A shows 0% (no) de-noising applied, while FIG. 3B shows 100% de-noising applied to the signal.

For example, FIG. 4 shows a representation of a manual selector 401 (e.g., slider, switch, input), for selecting how much de-noising to apply. In some variations, this applies to any and all filtering/de-noising; in some variations this module may be configured to select the percent of de-noising excluding the preprocessing (e.g., main filter) and/or the baseline wander correction. For example, the apparatus or method may be configured to allow manual selection of the high-frequency filtering (e.g., Savitzky-Golay denoising and/or threshold smoothing).

In FIG. 4, the slider is set to 25%, but may be adjusted between 0 and 100 percent (e.g., 0 and 1). This may be achieved by weighting the amount of filtering applied. For example, the output (visual output of the ECG) may be weighted by the filtering based on the following relationship:

The output at time t is:

Output at time t=(1−w)*A(t)+w*B(t)

Where w is the percent of weighting for the de-noising (e.g., the slider setting in FIG. 4), and A(t) is the raw or low-filtered signal, and B(t) is the filtered/de-noised signal. In this example, the A(t) and B(t) signals are time aligned, as this is being performed in real-time.

In use, a physician or use may look at an ECG signal and, on the screen, move the percent de-noising selector (e.g., slider) to select how much de-noising to show. If there is an unusual shape in an ECG signal, they can confirm that it is a genuine effect, and can gradually move the selector to confirm that the feature is genuinely present, and how it is affected by the de-noising.

In some variations, an apparatus (system or device) may be configured to remove mains noise and do low-pass filtering when the percent de-noising is set to zero. However, the apparatus could be configured to more filtering to show the raw signal (without preprocessing or baseline wander correction), as mentioned.

FIGS. 5A-5E, 6A-6E and 7A-7E illustrate three ECG traces showing various amounts of filtering/de-noising applied. FIGS. 5, 6 and 7 all show ‘raw’ signals prior to filtering, and FIGS. 5E, 6E and 7 (respectively) show the same signals with 100% of the de-noising applied.

As discussed above, the apparatus or method may also be configured to automatically/adaptively adjust the amount of de-nosing provided. For example, the system may be configured to weight the application of de-noising more or less based on a detected noise level for the signal. Thus, the quality of the signal may determine the amount of filtering to be applied. In some variations, automatic detection of noise could be done by training a non-linear regression model (e.g., a neural network) on signals that are clean (e.g., 1000 clean ECG signals), from which a noise model can be built. By adding on different degrees of noise, and make a noisy signal, the system/module may be trained to learn to detect relative percentage of noise. This may let one determine how much noise is present (by approximate) and determine the amount of filtering to apply.

EXAMPLE(S)

The ECG filtering methods and apparatuses described herein can be used for many ECG signals acquired from many sources. For example, the ECG signals may be conveniently acquired through the use of an everyday computing device such as a personal computer, a laptop computer, a tablet computer, a smartphone, a smart watch, a smart wrist band, a wearable computer, or the like. FIG. 8 shows an exemplary method 800 of monitoring an ECG signal of a user through the use of such computing devices.

In a step 805, the computing device may be provided. The computing device may comprise an everyday use computing device as described herein. In a step 810, an ECG or cardiac parameter monitoring application may be provided on the computing device. For example, the ECG or cardiac parameter monitoring application may be downloaded from an application distribution platform such as the Apple iTunes or App Store, Google Play, Amazon App Store, or the like. The application may be loaded and active on the computing device to monitor the ECG or cardiac parameter(s). Alternatively or in combination, the application may be placed in the background and remain active to monitor the ECG or cardiac parameter(s) while a second application such as a Web Browser or e-mail client is active.

In a step 815, the ECG or cardiac parameter signal may be provided. The ECG or cardiac parameter signal may be provided from an on-board sensor assembly of the computing device. For example, an on-board sensor of the computing device may be used in a step 815A. The computing device may comprise a plurality of built-in electrodes to measure an ECG of a user upon contact with the skin of the user (e.g., such as on the chest or on two or more limbs). The ECG or cardiac parameter may be provided from an accessory in communication with the computing device. Alternatively or in combination, a sensor accessory coupled to the computing device may be used in a step 815B. The accessory may comprise a plurality of electrodes to measure an ECG of the user upon contact with the skin of the user (e.g., such as on the chest or on two or more limbs) and a wireless transmitter for wirelessly transmitting the measured ECG signal to the computing device. The accessory may be in the form of a computing device cover or case or a wristlet. Such accessories are described in co-assigned U.S. patent applications Ser. No. 12/796,188 (now U.S. Pat. No. 8,509,882), U.S. Ser. Nos. 13/108,738, 13/420,520 (now U.S. Pat. No. 8,301,232), U.S. Ser. Nos. 13/964,490, 14/254,310, 61/845,254, 61/872,555, 61/874,806, and 61/982,002.

In a step 820, an amount of filtering may be selected to be applied to the ECG or cardiac parameter signal. Such selection may be as described above. For example, the application may have a menu bar which may be dragged by the user to select a percentage of filtering to apply (e.g., the menu bar may be provided on a touch-screen display). In a step 825, the selected filter is applied to the ECG or cardiac parameter signal. The applied filter may comprise the multi-stage filter described above. For example, the step 825 may comprise three or more distinct filtering steps 825 a, 825 b, and 825 c. In a step 825 a, a baseline wander of the signal may be removed such as by removing a moving average of the signal from a portion of the signal as described herein. In a step 825 b, high-frequency noise may be removed to smooth the signal such as by applying a Savitzky-Golay de-noising filter as described herein. In a step 825 c, low-amplitude, high-frequency noise is removed from the signal such as by applying threshold fit smoothing as described herein. In a step 830, the filtered ECG or cardiac parameter signal is displayed, for example, with a display of the computing device.

The ECG or cardiac parameter signal, filtered or un-filtered, may be analyzed either automatically by the application loaded onto the computing device or by a medical professional, either observing the signal shown by the display of the computing device or observing the signal remotely. In a step 835, the ECG or cardiac parameter signal may be stored on a memory of the computing device. In a step 840, the ECG or cardiac parameter may be sent to a remote server, for example, wirelessly through the Internet. The ECG or cardiac parameter may be remotely analyzed in many ways. For example, the ECG or cardiac parameter may be analyzed using a plurality of medical professionals as described in co-assigned U.S. patent application Ser. No. 14/217,032. In a step 845, a diagnosis or interpretation of the ECG or cardiac parameter can be provided on the computing device. For example, a medical professional remote server can upload the diagnosis or interpretation to the remote server which downloads the diagnosis or interpretation to the computing device. Alternatively or in combination, the application loaded onto the computing device may automatically provide the diagnosis or interpretation. The diagnosis or interpretation may comprise a diagnosis for atrial fibrillation, an arrhythmia, or the like and/or a risk level for such conditions.

A system for performing the method 800 may comprise at least a computing device for one or more users and a remote server or a cloud-based service for managing the physiological parameter(s) acquired through the computing device. The computing device may include on-board sensors for acquiring the physiological parameter signals. For example, the computing device may include a plurality of electrodes for acquiring various physiological parameter signals (e.g., ECG, EEG, EMG, body fat percentage, skin hydration, etc.) or imaging and light sources for acquiring various physiological parameter signals (e.g., heart rate, blood oxygenation levels, blood glucose levels, etc.) Alternatively or in combination, the system may further comprise an accessory in communication (wireless (e.g., Bluetooth, Bluetooth LE, NFC, WiFi, ZigBee, ultrasound, or the like) or wired (e.g., USB, lightning, audio port, or the like)) with the computing device and the accessory may include sensor components as described herein for measuring the physiological parameter(s) which are subsequently sent to the computing device. Users may access the remote server or cloud-based service through the computing device or through another computing device for many purposes. For example, the user may archive his or her physiological parameter signals, view the archived physiological parameter signals, or view analyses, interpretations, or diagnoses of the physiological parameter signals. Access to the remote server or cloud-based service may be provided to a select group of medical professionals which may provide the analyses, interpretations, or diagnoses of the user physiological signals. Alternatively or in combination, the physiological parameter signals from a plurality of users may be pooled together to generate population statistics which may be studied to improve the analyses, interpretation, or diagnoses of the users. For example, the system may further comprise a machine learning platform configured to learn from the population data to better identify disease(s) or risk for diseases(s) from the user provided physiological parameter signals.

Although the above steps show the method 800 of monitoring a physiological parameter in accordance with many embodiments, a person of ordinary skill in the art will recognize many variations based on the teaching described herein. The steps may be completed in a different order. Steps may be added or deleted. Some of the steps may comprise sub-steps. Many of the steps may be repeated as often as beneficial to the treatment.

One or more of the steps of the method 800 may be performed with circuitry as described herein, for example, one or more of a processor or logic circuitry (e.g., of a computing device or accessory thereof) such as a programmable array logic for a field programmable gate array or a application specific integrated circuit. The circuitry may be programmed to provide one or more of the steps of the method 800, and the program may comprise program instructions stored on a computer readable memory or programmed steps of the logic circuitry such as the programmable array logic or field programmable gate array, for example.

While the filtering methods described herein are described for filtering ECG signals, one skilled in the art would appreciate that the signal filtering methods may be applied for other physiological signals, including but not limited to electroencephalogram (EEC) signals, electromyogram (EMG) signals, mechanomyogram (MMG) signals, electroculograpm (EOG) signals, galvanic skin response (GSR) signals, magnetoencephalogram (MEG) signals, or other biosignals.

In general, any of the apparatuses or modules described herein may be hardware, software, and/or firmware. In particular, these apparatuses may be software base apparatuses, including programs (e.g., application programs/software) for execution on one or more general or dedicated microprocessors.

Terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. For example, as used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items and may be abbreviated as “/”.

Spatially relative terms, such as “under”, “below”, “lower”, “over”, “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if a device in the figures is inverted, elements described as “under” or “beneath” other elements or features would then be oriented “over” the other elements or features. Thus, the exemplary term “under” can encompass both an orientation of over and under. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly. Similarly, the terms “upwardly,” “downwardly,” “vertical,” “horizontal” and the like are used herein for the purpose of explanation only unless specifically indicated otherwise.

Although the terms “first” and “second” may be used herein to describe various features/elements, these features/elements should not be limited by these terms, unless the context indicates otherwise. These terms may be used to distinguish one feature/element from another feature/element. Thus, a first feature/element discussed below could be termed a second feature/element, and similarly, a second feature/element discussed below could be termed a first feature/element without departing from the teachings of the present disclosure.

As used herein in the specification and claims, including as used in the examples and unless otherwise expressly specified, all numbers may be read as if prefaced by the word “about” or “approximately,” even if the term does not expressly appear. The phrase “about” or “approximately” may be used when describing magnitude and/or position to indicate that the value and/or position described is within a reasonable expected range of values and/or positions. For example, a numeric value may have a value that is +/−0.1% of the stated value (or range of values), +/−1% of the stated value (or range of values), +/−2% of the stated value (or range of values), +/−5% of the stated value (or range of values), +/−10% of the stated value (or range of values), etc. Any numerical range recited herein is intended to include all sub-ranges subsumed therein.

Although various illustrative embodiments are described above, any of a number of changes may be made to various embodiments without departing from the scope of the invention as described by the claims. For example, the order in which various described method steps are performed may often be changed in alternative embodiments, and in other alternative embodiments one or more method steps may be skipped altogether. Optional features of various device and system embodiments may be included in some embodiments and not in others. Therefore, the foregoing description is provided primarily for exemplary purposes and should not be interpreted to limit the scope of the invention as it is set forth in the claims.

The examples and illustrations included herein show, by way of illustration and not of limitation, specific embodiments in which the subject matter may be practiced. As mentioned, other embodiments may be utilized and derived there from, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. Such embodiments of the inventive subject matter may be referred to herein individually or collectively by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept, if more than one is, in fact, disclosed. Thus, although specific embodiments have been illustrated and described herein, any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.

While preferred embodiments of the present disclosure have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the disclosure and inventions described therein. It should be understood that various alternatives to the embodiments of the disclosure described herein may be employed in practicing the disclosure and the inventions described therein. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby. 

What is claimed is:
 1. A method of processing an electrocardiogram (ECG) signal of a user to provide improved readability of the ECG signal for a medical professional in diagnosing the ECG signal, the method comprising: receiving an ECG signal; and filtering the ECG signal as the ECG signal is received by applying a first filtering stage, a second filtering stage, and a third filtering stage to the ECG signal, wherein the first, second, and third filtering stages are different from one another.
 2. The method of claim 1, further comprising displaying the filtered ECG signal in real-time as the ECG signal is received and filtered, wherein the displayed filtered ECG signal has improved readability such that a medical professional can better diagnose the filtered ECG signal.
 3. The method of claim 1, wherein the first, second, and third filtering stages are performed in sequence.
 4. The method of claim 1, wherein the first, second, and third filtering stages are performed in parallel.
 5. The method of claim 1, wherein applying the first filtering stage comprises removing baseline wander of the ECG signal.
 6. The method of claim 5, wherein removing the baseline wander comprises removing a moving average of the ECG signal from a portion of the ECG signal.
 7. The method of claim 1, wherein applying the second filtering stage comprises removing high-frequency noise from the ECG signal.
 8. The method of claim 7, wherein removing the high-frequency noise comprises applying a Savitzky-Golay de-noising filter to smooth the ECG signal.
 9. The method of claim 8, wherein applying the Savitzky-Golay de-noising filter comprises applying a high order Savitzky-Golay filter to a QRS segment of the ECG signal and applying a low order Savitzky-Golay filter to a non-QRS segment of the ECG signal.
 10. The method of claim 1, wherein applying the third filtering stage comprises removing low-amplitude, high frequency noise from the ECG signal.
 11. The method of claim 10, wherein removing the low-amplitude, high frequency noise from the ECG signal comprises applying threshold fit smoothing to the ECG signal.
 12. The method of claim 1, further comprising pre-processing the received ECG signal before filtering the ECG signal.
 13. The method of claim 12, wherein pre-processing the received ECG signal comprises applying user-selected mains filter.
 14. The method of claim 1, further comprising detecting an amount of noise of the received ECG signal.
 15. The method of claim 14, further comprising varying an amount of filtering applied to the received ECG signal in response to the amount of noise detected.
 16. The method of claim 14, wherein detecting the amount of noise comprises training a module of a computing device with a noise model.
 17. The method of claim 1, further comprising varying an amount of filtering applied to the received ECG signal in response to user input.
 18. A method of processing an electrocardiogram (ECG) signal of a user to provide improved readability of the ECG signal for a medical professional in diagnosing the ECG signal, the method comprising: providing an ECG signal to a computing device; filtering the provided ECG signal; displaying the filtered ECG signal on a display of the computing device; and varying an amount of filtering applied to the displayed ECG signal in response to user input, wherein the amount of filtering is varied in real-time as the ECG signal is displayed, and wherein the displayed filtered ECG signal has improved readability such that a medical professional can better diagnose the filtered ECG signals.
 19. The method of claim 18, wherein providing the ECG signal comprises receiving, with the computing device, the ECG signal as the ECG signal is measured from an ECG sensor coupled to the computing device.
 20. The method of claim 18, wherein providing the ECG signal comprises receiving, with the computing device, the ECG signal as the ECG signal is measured from an onboard sensor of the computing device.
 21. The method of claim 18, wherein the ECG signal is displayed in real-time as the ECG signal is provided and filtered.
 22. The method of claim 18, wherein filtering the displayed ECG signal comprises applying a first filtering stage, a second filtering stage, and a third filtering stage to the provided ECG signal, wherein the first, second, and third filtering stage are different from one another.
 23. The method of claim 18, wherein the computing device comprises one or more of a smartphone, a tablet computer, a laptop computer, a personal computer, a personal digital assistant, or a wearable computer.
 24. A method of processing an electrocardiogram (ECG) signal of a user, the method comprising: receiving an ECG signal; pre-processing the received ECG signal; and filtering the pre-processed ECG signal by (i) removing baseline wander of the ECG signal, (ii) removing high frequency noise from the ECG signal, and (iii) removing low-amplitude, high frequency noise from the ECG signal, wherein steps (i) to (iii) are performed sequentially. 